A context-aware system is a system that has the ability to gather information and to adapt behavior according to the gathered information. Context-aware computing systems include software and hardware working together to automatically collect and analyze context data, and perform actions based on the analysis. In addition to context-aware computing, context data that provides context awareness is a technological prerequisite for a number of concepts including machine to machine (M2M), internet of things (IoT), ubiquitous computing, and event-driven computing.
Context data may be information relevant to a given entity (e.g., a person, a device, or an application). Examples of such context data include location, user profile, device, environment, activity, health, social, network, and role. Context data for context-aware computing may be acquired through context providers such as web browsers, cameras, microphones, Global Positioning Satellite (GPS) receivers, sensors, etc.
Typically, the context providers collect and send the context data to a server. The server processes the received context data and performs one or more actions as configured. However, in some cases the received context data is redundant. For example, location of a context provider might remain unchanged for a certain period of time. Nevertheless, the server is configured to process context data received from the context provider. This way, the server processes the redundant data repeatedly, causing excessive system load that may lead to increased total cost of ownership (TCO).